#include <stdio.h>
// #include <stdio.h>
// #include <string.h>
// int main()
// {
//     printf("abc\tdef\n");
//     printf("%d",sizeof("abc\tdef\n"));
//     printf("%d",strlen("abc\tdef\n"));
//     printf("%d",strlen("abc\tdef\n"));
//     return 0;
// }


// int main() 
// {
//     char arr[5] = {0};
//      gets(arr);
//     int sz = sizeof(arr) / sizeof(arr[0]);
//     for (int i = sz - 1; i >= 0; i--)
//     {
//         printf("%c ",arr[i]);
//     }
//     return 0;
// }


// int main()
// {
//     char arr[5] = {'A', 'B', 'C', 'D', 'E'};
//     int i = 0;
//     scanf("%d",&i);
//     arr[5- i] = arr[i - 1]
//     return 0;
// }
// size_t my_strlen(const char* str)
// {
//     size_t count = 0;
//     while (*str != '\0')
//     {
//         count++;
//         str++;
//     }
//     return count;
// }


// int main()
// {
//     char arr[10] = {"abcde"};
//     size_t i = my_strlen(arr);
//     printf("%d\n", i);
//     return 0;
// }


// int main()
// {
//     int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//     int* p = arr;
//     int sz = sizeof(arr) / sizeof(arr[0]);
//     int j = sz -1;
//     int y = 0;
//     for (int i = 0; i < 10; i++)
//     {
       
//         if (*(p + i) % 2 == 0)
//         {
//             *(p + j) = *(p + i);
//             j--;
//         }
        
//         if (*(p + i) % 2 != 0)
//         {
//             *(p + y) = *(p + i);
//             y++;
//         }
//     }
//     for (int i = 0; i < sz; i++)
//     {
//         printf("%d ", arr[i]);
//     }
//     return 0;
// }


// int main()
// {
//     int a, b, c;
//     scanf("%d%d%d",&a,&b,&c);
//     if (a < b)
//     {
//         int cmp = a;
//         a = b;
//         b = cmp;
//     }//保证a>=b
//     if (a < c)
//     {
//         int cmp = a;
//         a = c;
//         c = cmp;
//     }//保证a>=c
//     if (b < c)
//     {
//         int cmp = b;
//         b = c;
//         c = cmp; 
//     }//保证b>=c
//     printf("%d %d %d",a,b,c);
//     return 0;
// }


// int main()
// {
//     int i = 0;
//     for ( i= 1; i <= 9; i++)
//     {
//         int j = 0;
//         for (j = 1; j <= i; j++)
//         {
//             printf("%d*%d=%d",i, j, i*j);
//         }
//         printf("\n");
//     }
//     return 0;
// }


// int main()
// {
//     int i = 0;
//     double j = 0;
//     for (i = 1; i <= 100; i++)
//     {
//         int flag = 1;
//         j += 1.0*flag / i;
//         flag = -flag;
//     }
//     printf("%lf",j);
//     return 0;
// }


// int main()
// {
//     int i = 0;
//     int count = 0;
//     for (i = 1; i <= 100; i++)
//     {
//         if (i % 10 == 9)
//         {
//             count++;
//         }
//         if (i / 10 == 9)
//         {
//             count++;
//         }
        
//     }
//     printf("%d",count);
//     return 0;
// }


// #include <string.h>
// int main()
// {
//     int arr[10] = {0, 1, 2, 3, 4, 6, 5, 7, 8, 9};
//     //scanf("%d",arr);
//     int len = sizeof(arr) / sizeof(arr[0]);
//     int max = arr[0];
//     for (int i = 0; i < len; i++)
//     {
//         if (max < arr[i])
//         {
//             max = arr[i];
//         }
//     }
//     printf("%d",max);
//     return 0;
// }


// int main()
// {
//     int a, b;
//     scanf("%d%d",&a, &b);
//     int c = a % b;
//     while (c != 0)
//     {
//         a = b;
//         b = c;
//         c = a %b;
//     }
//     printf("%d",b);
//     return 0;
// }


// int main()
// {
//     for (int i = 101; i < 200; i++)
//     {
//         int j = 2;
//         for (j = 2; j < i; j++)
//         {
//             if (i % j == 0)
//             {
//                 break;
//             }
//         }
//         if (i == j)
//         {
//             printf("%d ",i);
//         }
//     }
//     return 0;
// }


// int main()
// {
//     int a;
//     while(scanf("%d",&a) != EOF)
//     {
//         for (int i = 0; i < a; i++)
//         {
//             int j = 0;
//             for (j = 0; j < a; j++)
//             {
//                 if (i == j || ((i + j) == a -1))
//                 {
//                 printf("*");
//                 }
//                 else
//                 {
//                 printf(" ");
//                 }
//             }
//             printf("\n");
//         }
//     }
    
//     return 0;
// }


// #include<string.h>
// #include<windows.h>
// int main()
// {
//     char arr1[] = {"welcome to bit..."};
//     char arr2[] = {"*****************"};
//     int left = 0;
//     int right = strlen(arr1) - 1;
//     printf("%s\n",arr2);
//     while (left <= right)
//     {
//         Sleep(1000);
//         arr2[left] = arr1[left];
//         arr2[right] = arr1[right];
//         left++;
//         right--;
//         system("cls");
//         printf("%s\n",arr2);
        
//     }
//     return 0;
// }


// int main()
// {
//     int a, b, c;
//     scanf("%d%d%d",&a, &b, &c);
//     if (a < b)
//     {
//         int cmp = a;
//         a = b;
//         b = cmp;
//     }
//     if (a < c)
//     {
//         int cmp = a;
//         a = c;
//         c = cmp;
//     }
//     if (b < c)
//     {
//         int cmp = b;
//         b = c;
//         c = cmp;
//     }
//     printf("%d %d %d ",a, b, c);
//     return 0;
// }


// int main()
// {
//     for (int i = 1; i <= 9; i++)
//     {
//         int j = 1;
//         for (j = 1; j <= i; j++)
//         {
//             printf("%d*%d=%d ",j, i, i*j);
//         }
//         printf("\n");
//     }
//     return 0;
// }


// int main()
// {
//     int i = 0;
//     double count = 0;
//     for (i = 1; i <= 100; i++)
//     {
//         int flag = 1;
//         count += (1.0*flag / i); 
//         flag = -flag;
//     }
//     printf("%lf",count);
//     return 0;
// }


// int main()
// {
//     int count = 0;
//     int i = 0;
//     for (i = 1; i < 100; i++)
//     {
//         if (i % 10 == 9)
//         {
//             count++;
//         }
//         if (i / 10 == 9)
//         {
//             count++;
//         }
//     }
//     printf("%d",count);
//     return 0;
// }


// int main()
// {
//     int i, j;
//     scanf("%d%d",&i, &j);
//     int a = i % j;
//     while (a != 0)
//     {
//         i = j;
//         j = a;
//         a = i % j;
//     }
//     printf("%d",j);
//     return 0;
// }


// int main()
// {
//     int arr[5] = { 0 };
//     for (int j = 0; j < 5; j++)
//     {
//         scanf_s("%d",&arr[j]);
//     }
//     int sz = sizeof(arr) / sizeof(arr[0]);
//     int max = arr[0];
//     for (int i = 1; i < sz; i++)
//     {
//         if (max < arr[i])
//         {
//             max = arr[i];
//         }
//     }
//     printf("%d",max);
//     return 0;
// }


// int main() 
// {
//     int n, m;
//     scanf("%d%d",&n, &m);
//     int arr[n][m];
//     for (int i = 0; i < n; i++)
//     {
//         for (int j = 0; j < m; j++)
//         {
//             scanf("%d",&arr[i][j]);
//         }
//     }
//     for (int i = 0; i < m; i++)
//     {
//         for (int j = 0; j < n; j++)
//         {
//            printf("%d",arr[i][j]);
//         }
//     }
//     return 0;
// }


// int main()
// {
//     int  count;
//     double money;
//     while (scanf("%d", &count) != EOF)
//     {
//         if (count <= 29 && count > 0)
//         {
//             money = (double)count * 50;
//             printf("%.2lf\n", money);
//         }
//         else
//         {
//             money = (double)count * 48;
//             printf("%.2lf\n", money);
//         }
//     }
//     return 0;
// }


// int main()
// {
//     int x,y,z;
//     while (scanf("%d%d%d",&x,&y,&z) != EOF)
//     {
//         if (x < y)
//         {
//             int tmp = y;
//             y = x;
//             x = tmp;
//         }
//         if (x < z)
//         {
//             int tmp = z;
//             z = x;
//             x = tmp;
//         }
//         if (y < z)
//         {
//             int tmp = y;
//             y = z;
//             z = tmp;
//         }
//         printf("%d\n",x);
//     }
//     return 0;
// }


// int main()
// {
//     char a, b, c;
//     while (scanf(" %c%c%c", &a, &b, &c) != EOF)
//     {
//         if (a < b)
//         {
//             char tmp = b;
//             b = a;
//             a = tmp;
//         }
//         if (a < c)
//         {
//             char tmp = a;
//             a = c;
//             c = tmp;
//         }
//         if (b < c)
//         {
//             char tmp = b;
//             b = c;
//             c = tmp;
//         }
//         printf("%c\n", a);
//     }
//     return 0;
// }



// int main()
// {
//     char a, b, c;
//     while (scanf(" %c%c%c", &a, &b, &c) != EOF) // 前面加空格跳过回车
//     {
//         char max = a;
//         if (b > max) max = b;
//         if (c > max) max = c;
//         printf("%c\n", max);
//     }
//     return 0;
// }


// int main()
// {
//     char a, b, c;
//     while (scanf("%c %c %c", &a, &b, &c, 3) != EOF)
//     {
//         if (a < b)
//         {
//             char tmp = b;
//             b = a;
//             a = tmp;
//         }
//         if (a < c)
//         {
//             char tmp = a;
//             a = c;
//             c = tmp;
//         }
//         if (b < c)
//         {
//             char tmp = b;
//             b = c;
//             c = tmp;
//         }
//         printf("%c", a);
//     }
//     return 0;
// }


// int main()
// {
//     double x, y;
//     char op;
//     while (scanf("%lf %c %lf", &x, &op ,&y) != EOF)
//     {
//         if (op == '+' || op == '-' || op == '*' || op == '/')
//         {
            
            
            
//                 if (op == '+')
//                 {
//                     printf("%.2lf\n", x + y);
//                 }
//                 if (op == '-')
//                 {
//                     printf("%.2lf\n", x - y);
//                 }
//                 if (op == '*')
//                 {
//                     printf("%.2lf\n", x * y);
//                 }
//                 if (op == '/')
//                 {
//                     if (y == 0)
//                     {
//                         printf("Wrong input\n");
//                     }
//                     else
//                     {
//                         printf("%.2lf\n", x / y);
//                     }
//                 }
            
//         }
//         else
//         {
//             printf("Wrong input\n");
//         }
//     }
//     return 0;
//}


// #include<math.h>
// int main()
// {
//     int item = 0;
//     int n = 0;
//     while(scanf("%d %d", &item, &n) != EOF)
//     {
//         double arr[] = { 0 };
//         for (int i = 0; i < n; i++)
//         {
//            arr[i] = 0;
//         }
//         arr[0] = (double)item;
//         double ret = (double)item;
//         for (int i = 0; i < n; i++)
//         {
//             arr[i + 1] = sqrt(arr[i]);
//             ret += arr[i + 1];
//         }
//         printf("%.2lf\n", ret);
//     }
//     return 0;
// }


// int main()
// {
//     int n = 0;
//     while (scanf("%d",&n) != EOF)
//     {
//         int arr[] = { 0 };
//         int p = 0;
//         int q = 0;
//         for (int i = 0; i < 2 * n;)
//         {
//             scanf("%d %d",&p, &q);
//             arr[i] = p;
//             arr[i + 1] = q;
//             i += 2;
//         }
//         for (int i = 0; i < 2 * n;)
//         {
//             printf("%d\n",arr[i] + arr[i + 1]);
//             i += 2;
//         }
//     }
//     return 0;
// }


// int main()
// {
//     int n = 0;
//     while (scanf("%d",&n) != EOF)
//     {
//         int p = 0;
//         int q = 0;
//         for (int i = 0; i < n; i++)
//         {
//             scanf("%d%d",&p, &q);
//             printf("%d\n",p + q);
//         }
//     }
//     return 0;
// }


// int main()
// {
//     int a = 0;
//     int b = 0;
//     while (scanf("%d%d",&a, &b) != EOF)
//     {
//         printf("%d\n",a + b);
//     }
//     return 0;
// }


// int main()
// {
//     int n = 0;
//     int j = 0;
//     int arr[1000] = {0};
//     for (int i = 0; i < 1000; i++)
//     {
//         scanf("%d",&n);
//         if (n >= 0)
//         {
//             arr[j] = n;
//             j++;
//         }
//         else
//         break;
//     }
//     int sz = sizeof(arr) / sizeof(arr[0]);
//     int max = arr[0];
//     for (int i = 0; i < sz; i++)
//     {
//         if (arr[i] > max)
//         {
//             max = arr[i];
//         }
//     }
//     printf("%d\n",max);
//     return 0;
// }


// // 函数功能：将数组中所有元素乘以2
// void multiplyByTwo(int *arr, int length) 
// {
//     // 遍历数组，arr++ 让指针依次指向每个元素
//     for (int i = 0; i < length; i++) 
//     {
//         // 通过指针修改当前指向的数组元素
//         *arr *= 2;
//         // 指针向后移动一个步长（int类型为4字节），指向 next 元素
//         arr++;
//     }
// }

// int main() {
//     int numbers[] = {1, 2, 3, 4, 5};
//     int len = sizeof(numbers) / sizeof(numbers[0]);
//     printf("修改前数组：");
//     for (int i = 0; i < len; i++) 
//     {
//         printf("%d ", numbers[i]); // 输出：1 2 3 4 5
//     }
//     printf("\n");
//     // 传入数组名（即首元素地址）和数组长度
//     multiplyByTwo(numbers, len);
//     printf("修改后数组：");
//     for (int i = 0; i < len; i++) 
//     {
//         printf("%d ", numbers[i]); // 输出：2 4 6 8 10
//     }
//     printf("\n");
//     return 0;
// }


// #include <stdio.h>

// int main() {
//     int arr[] = {10, 20, 30};
//     // 数组名 arr 等价于 &arr[0]（数组第一个元素的地址）
//     printf("arr 的值（首元素地址）：%p\n", arr);
//     printf("&arr[0] 的值（首元素地址）：%p\n", &arr[0]);
//     // 通过数组名访问元素：arr[i] 等价于 *(arr + i)
//     printf("arr[0] = %d, *(arr + 0) = %d\n", arr[0], *(arr + 0)); // 输出：10 10
//     printf("arr[1] = %d, *(arr + 1) = %d\n", arr[1], *(arr + 1)); // 输出：20 20
//     printf("arr[2] = %d, *(arr + 2) = %d\n", arr[2], *(arr + 2)); // 输出：30 30
//     return 0;
// }


// #include <stdio.h>

// int main() {
//     int arr[] = {5, 10, 15, 20};
//     int sz = sizeof(arr) / sizeof(arr[0]);
//     // 指针 p 指向数组首元素
//     int* p = arr;
//     // 遍历 sz 次，每次 p 指向下一个元素
//     for (int i = 0; i < sz; i++) {
//         printf("%d ", *p); // 输出当前指向的元素
//         p++; // 指针向后移动一个步长
//     }
//     printf("\n");
//     return 0;
// }


// #include <stdio.h>

// int main() {
//     int arr[] = {5, 10, 15, 20};
//     int sz = sizeof(arr) / sizeof(arr[0]);
//     // 指针 p 指向数组首元素，end 指向数组末尾（首地址 + 长度）
//     int* p = arr;
//     int* end = arr + sz;
//     // 当 p 未到达 end 时，继续遍历
//     while (p < end) 
//     {
//         printf("%d ", *p); // 输出当前元素
//         p++; // 指针后移
//     }
//     return 0;
// }


// #include <stdio.h>

// int main() {
//     // 二维数组：2行3列，内存中连续存放为 [1,2,3,4,5,6]
//     int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
//     // 定义数组指针 p，指向“包含3个int元素的数组”（与二维数组的行长度匹配）
//     int (*p)[3] = arr;
//     // 数组指针的步长：每次移动 3*4=12 字节（3个int元素的总长度）
//     printf("p 指向第1行，首元素地址：%p\n", p);
//     printf("p+1 指向第2行，首元素地址：%p\n", p+1); // 比 p 大 12 字节
//     // 访问二维数组元素：arr[i][j] 等价于 *(*(p+i) + j)
//     printf("arr[0][0] = %d, *(*(p+0)+0) = %d\n", arr[0][0], *(*(p+0)+0)); // 1
//     printf("arr[0][2] = %d, *(*(p+0)+2) = %d\n", arr[0][2], *(*(p+0)+2)); // 3
//     printf("arr[1][1] = %d, *(*(p+1)+1) = %d\n", arr[1][1], *(*(p+1)+1)); // 5
//     return 0;
// }


// #include <stdio.h>

// int main()
// {
//     // 方式1：字符指针指向字符串常量（不能修改内容）
//     char* str1 = "Hello, Bit!";
//     // 方式2：字符指针指向字符数组（可以修改内容）
//     char str2[] = "Hello, Bite!";
//     char* p = str2;
//     // 输出字符串：printf 会自动从指针指向的地址开始，直到遇到 '\0' 结束
//     printf("str1: %s\n", str1); // 输出：Hello, Bit!
//     printf("str2: %s\n", p); // 输出：Hello, Bite!
//     // 错误：修改字符串常量会导致程序崩溃
//     // str1[0] = 'h';
//     // 正确：修改字符数组中的字符串
//     p[0] = 'h';
//     printf("changed str2: %s\n", str2); // 输出：hello, Bite!
//     return 0;
// }



//strlen的默认返回类型是size_t
//第一种模拟实现方法：计数器方法
// size_t my_strlen(const char* s)
// {
//     int count = 0;
//     //如果*s的结果是'\0'则退出循环
//     while (*s)
//     {
//         count++;
//         s++;
//     }
//     return count;
// }

//第二种模拟实现方法：指针-指针
// size_t my_strlen(const char* s)
// {
//     const char* p = s;
//     while (*s)
//     s++;
//     return s - p;
// }

//第三种模拟实现方法：递归
// size_t my_strlen(const char* s)
// {
//     if (*s == '\0')
//     return 0;
//     else
//     return 1 + my_strlen(s + 1);
// }
// int main()
// {
//     char arr[] = "Hello Bite!";
//     size_t ret = my_strlen(arr);
//     printf("%d\n",ret);
//     return 0;
// }


//  char* my_strcpy(char* dest, char* sour)
//  {
//     char* ret = dest;
//     while (*dest++ = *sour++)
//     ;
//     return ret;
//  }

// char* my_strcat(char* dest, char* sour)
// {
//     char* ret = dest;
//     while (*dest)
//     dest++;
//     while (*dest++ = *sour++)
//     ;
//     return ret;
// }
// int main()
// {
//     char arr1[20] = "Hello Bite!";
//     char arr2[] = "NB";
//     char* ret = my_strcat(arr1, arr2);
//     printf("%s\n",ret);
//     return 0;
// }


//  int main()
//  {
//     char str1[] = "hello bit.";
//     char str2[] = "hello bit.";
//     const char *str3 = "hello bit.";
//     const char *str4 = "hello bit.";
//     if(str1 ==str2)
//     printf("str1 and str2 are same\n");
//     else
//     printf("str1 and str2 are not same\n");
//     if(str3 ==str4)
//     printf("str3 and str4 are same\n");
//     else
//     printf("str3 and str4 are not same\n");
//     return 0;
//  }


// void test()
// {
//     printf("hehe\n");
// }
// int main()
// {
//     printf("test:  %p\n", test);
//     printf("&test: %p\n", &test);
//     return 0;
// }


// int Add(int x, int y)
// {
//     return x + y;
// }
// int main()
// {
//     int(*pf3)(int, int) = Add;
//     printf("%d\n", (*pf3)(2, 3));
//     printf("%d\n", pf3(3, 5));
//     return 0;
// }


// int main()
// {
//     int a, b, c, d;
//     while (scanf("%d%d%d%d",&a, &b, &c, &d) != EOF)
//     {
//         printf("%d\n",a + b);
//     }
    
//     return 0;
// }


int main()
{
    int max = -2147483648;
    int n = 0;
    while ((scanf("%d",&n) != EOF) && n >= 0)
    {
        max = max < n ? n : max;
    }  
    printf("%d\n",max);

    return 0;
}